#ifndef IMPRIME_ASA_H_INCLUDED
#define IMPRIME_ASA_H_INCLUDED
#include "ASA.h"
class ImprimeASA: public Visitante {
    public:
        void imprimeTabulacao();
        int tabulacao;

        ImprimeASA();
        void visitar(_Program *v);
        void visitar(_Block *v);
        void visitar(_SubProgram_List *v);
        void visitar(_SubPrograma* v);
        void visitar(_Var_List *v);
        void visitar(_Type *v);
        void visitar(_Type_List *v);
        void visitar(_Statement_List *v);
        void visitar(_Statement *v);
        void visitar(_Primary *v);
        void visitar(_If *v);
        void visitar(_While *v);
        void visitar(_Select *v);
        void visitar(_Break *v);
        void visitar(_Write *v);
        void visitar(_Read *v);
        void visitar(_CaseBlock *v);
        void visitar(_Exp_List *v);
        void visitar(_Exp *v);
        void visitar(_Assign *v);
        _Type* visitar(_Name *v);
        _Type* visitar(_Call *v);
        _Type* visitar(_Relational_Op *v);
        _Type* visitar(_Addition_Op *v);
        _Type* visitar(_Multiplication_Op *v);
        _Type* visitar(_Sign *v);
        _Type* visitar(_ID *v);
        _Type* visitar(_Number *v);
        _Type* visitar(_Literal *v);
        _Type* visitar(_Boolean_Op *v);
        _Type* visitar(_True *v);
        _Type* visitar(_False *v);
        ~ImprimeASA();
};

#endif // ASA_H_INCLUDED
